from rest_framework import permissions


class IsAdminOrReadOnly(permissions.BasePermission):
    """
    只允许管理员用户执行写入操作，其他用户只能读取。
    """

    def has_permission(self, request, view):
        # 任何请求都会被允许，但如果是写入操作（如POST、PUT、PATCH、DELETE），则需要管理员权限
        if request.method in permissions.SAFE_METHODS:
            return True
        # 使用is_staff代替is_admin，因为is_staff是Django内置的属性
        return request.user.is_staff
